// 引入 Vue 库
import Vue from "vue";
// 引入 Vuex 库
import Vuex from "vuex";

// 使用 Vuex 插件
Vue.use(Vuex);

// 创建并导出 Vuex 仓库实例
export default new Vuex.Store({
    // 定义应用状态
    state: {
        // 从 sessionStorage 中获取 token，如果不存在则初始化为空字符串
        token: sessionStorage.getItem('token') || '',
        // 从 sessionStorage 中获取 uid，如果不存在则初始化为空字符串
        uid: sessionStorage.getItem('uid') || '',
    },
    // 定义变更状态的方法
    mutations: {
        // 设置 token 的方法
        setToken(state, token) {
            // 更新状态中的 token
            state.token = token;
            // 将 token 存储到 sessionStorage 中
            sessionStorage.setItem('token', token);
        },
        // 设置 uid 的方法
        setUid(state, id) {
            // 更新状态中的 uid
            state.uid = id;
            // 将 uid 存储到 sessionStorage 中
            sessionStorage.setItem('uid', id);
        },
        // 注销方法
        logout(state) {
            // 清空状态中的 token
            state.token = '';
            // 清空状态中的 uid
            state.uid = '';
            // 从 sessionStorage 中移除 token
            sessionStorage.removeItem('token');
            // 从 sessionStorage 中移除 uid
            sessionStorage.removeItem('uid');
        }
    }
})
